I. Field of the Invention
The present invention relates generally to maintaining a synchronized multi-user collaborative environment, and more particularly to methods and systems of maintaining synchronization in a multi-user collaborative environment through the use of standard internet-formatted electronic mail.
II. Related Art
In collaborative multi-user environments, often referred to as workgroup environments, a number of users or workgroup members operating in their individual or local workspaces have access to a single computer file simultaneously. The ability to access the file in this manner typically includes the ability of each member to alter the file at any time as well. Thus, the larger the number of members in the workgroup the more critical it becomes that the individual workspaces of each member be synchronized to ensure that all users in the workgroup have access to the same version of a file.
Various methods and systems for maintaining a synchronized workgroup environment are known in the art. Many such systems involve the use of a centralized workspace wherein synchronized files are maintained in a single location but can be accessed remotely by workgroup members from their local workspaces. Software residing in the centralized workspace performs the task of synchronizing any files that have been accessed and revised simultaneously by various workgroup members in their local workspaces.
One example of such a system utilizes the internet as the means of accessing the centralized workspace. Workgroup members access files installed on a central server using internet browsers installed in their local workspaces. As the workgroup members revise copies of a shared file in their local workspaces, a software plug-in installed on their internet browser communicates those revisions to the central server via the internet. Software residing on the central server then synchronizes the file residing on the central server with the revised file located in the individual workspace. The software on the central server will also send electronic mail. In the standard configuration, a local workspace for a workgroup member must be connected to the internet while the workgroup member is working on a shared file in his local workspace. If a workgroup member wants the ability to work on a shared file while off-line from the internet, he must install additional proprietary software on the computer in his local workspace.
Another method for maintaining a synchronization in an asynchronous distributed workgroup environment involves a rudimentary use of electronic mail to communicate revisions to workgroup members. In its simplest form, a workgroup member will create in their local workspace a file to be shared with the other members of the workgroup. The workgroup member will then send copies of the shared file to the other workgroup members as an electronic mail file attachment, along with written comments or instructions regarding what has been done or is to be done with the copy of the shared file. As each member in the workgroup revises their copy of the shared document in their local workspace, they must then send a copy of their revised copy or version of the shared file to every other member of the workgroup. It is then up to the other workgroup members to notice that a revised copy of the shared file has arrived in their local workspace, and overwrite their copy of the shared file with the revised copy of the shared file or create a new version of the shared file which they will recognize as the latest version of the shared file in their local workspace. In other words, it is up to each individual workgroup member to synchronize his local workspace.
The limitations of the foregoing method are obvious, and become increasingly more limiting as the number of workgroup members increases. Particularly troubling is the scenario involving multiple workgroup members revising their copies of the shared file simultaneously. Rather than simply overwriting their copy of the shared file with the revised copy of the shared file that has arrived in their local workspace, each workgroup member must then choose which revised copy of the shared file to use as the synchronized shared file residing in their local workspace, abandoning the revisions in the other revised copies of the shared file, or create several new versions of the shared file which they will recognize as the latest versions of the shared file in their local workspace.
These problems and deficiencies are recognized and solved by the present invention in the manner described below.
The present invention is directed to a method and system that allows one to maintain synchronization among shared computer files in asynchronous distributed workgroup environments without the need for a centralized workspace or centralized server, homogeneous computers in the local workspaces of workgroup members, proprietary communication protocols or dedicated network connections between members of a workgroup. A system having features of the present invention comprises a number of electronic mail servers, a number of computers capable of sending and receiving standard internet formatted electronic mail, and electronic mail user agents installed on each of the computers. Whenever one of the computers in the system receives an electronic mail message and the user agent resident on that computer detects a synchronization command embedded in the multipurpose internet mail extensions of the internet formatted message, the user agent will synchronize the shared files residing on the computer in the local workspace of that workgroup member. Some types of synchronization commands are accompanied by file attachments or additional MIME parts in the electronic mail message.
A system having features of the present invention may also generate and send to the other members of the workgroup electronic mail messages containing embedded synchronization commands whenever a workgroup member revises a shared computer file in his local workspace. A system having features of the present invention may also utilize embedded mailing list management commands to add and remove computers from the system.